//import java.util.Scanner;
//
//public class Main {
//    static int n;
//    static int[] a;
//    static int[] b;
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        int min = 0;
//        int max = 0;
//        a = new int[n];
//        b = new int[n];
//        int k = 0;
//        for(int i = 0; i<n; i++) {
//            a[i] = scanner.nextInt();
//            b[i] = scanner.nextInt();
//            k = Math.max(a[i],k);
//        }
//        //二分寻找最小值
//        int left = 1, right = k;
//        while(left < right) {
//            int mid = left + (right - left)/2;
//            if(!check(mid)) {
//                left = mid + 1;
//            }else {
//                right = mid;
//            }
//        }
//        min = left;
//
//        //二分寻找最大值
//        left = 1; right = k;
//        while(left < right) {
//            int mid = left + (right - left +1)/2;
//            if(!check(mid)) {
//                left = mid;
//            }else {
//                right = mid-1;
//            }
//        }
//        max = left;
//        System.out.println(max + " " + min);
//    }
//
//    public static boolean check(int m) {
//        for(int i = 0; i<n; i++) {
//            if(a[i]/m != b[i]) {
//                return false;
//            }
//        }
//        return true;
//    }

//
//import java.util.Scanner;
//
//public class Main {
//    static int n;
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        n = scanner.nextInt();
//        int min = Integer.MIN_VALUE;
//        int max = Integer.MAX_VALUE;
//        for (int i = 0; i < n; i++) {
//           int a = scanner.nextInt();
//           int b = scanner.nextInt();
//           max = Math.min(a/b,max);
//           min = Math.max(a/(b+1)+1,min);
//        }
//        System.out.println(min + " " + max);
//    }
//}
//
//import java.util.Scanner;
//
//public class Main {
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        String str = scanner.nextLine();
//        StringBuffer ret = new StringBuffer();
//        for(int i = 0; i<str.length(); i++) {
//            char ch = str.charAt(i);
//            if( ch>='0' && ch <= '9') {
//                int n = ch - '0';
//                while(n-- >1) {
//                    char tmp = str.charAt(i-1);
//                    ret.append(tmp);
//                }
//            }else {
//                ret.append(ch);
//            }
//        }
//        System.out.println(ret);
//    }
//}

import java.util.Scanner;

public class Main {
    final static int N = 15;
    static int n;
    static int[] st;

    public static void dfs(int u) {
        if(u == n) {
            for(int i = 1; i<=n; i++) {
                if(st[i] == 1) {
                    System.out.print(i + " ");
                }
            }
            System.out.println();
            return;
        }
        //不选
        st[u] = 2;
        dfs(u+1);
        st[u] = 0; //恢复现场
        //选
        st[u] = 1;
        dfs(u+1);
        st[u] = 0;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        st = new int[n+1];
        dfs(1);
    }
}




















